from rest_framework import pagination


class MyCursorPagination(pagination.CursorPagination):
    """
        CursorPagination 是一种基于光标（cursor）的分页策略
        光标分页 性能高，安全

    """
    page_size = 9  # 指定每页返回的数据量
    ordering = '-update_time'  # 指定默认的排序方式
    page_size_query_param = 'pages'  # 允许客户端通过请求参数指定每页返回的数据量。在这里，客户端可以使用名为 pages 的请求参数来指定每页的数据量
    max_page_size = 20  # 设置每页返回的数据的最大数量。这是为了防止客户端请求过大的数据量。在这里，最大限制被设置为 20 条数据。


class MyPageNumberPagination(pagination.PageNumberPagination):
    """
    普通分页，数据量越大性能越差
    """
    page_size = 11
    page_size_query_param = 'size'
    page_query_param = 'page'
    max_page_size = 20

